package com.jinzhi.jzweb.domain;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;

import com.baomidou.mybatisplus.enums.FieldStrategy;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jinzhi.jzweb.domain.vo.userAunt.UserVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 
 * <pre>
 * 
 * </pre>
 * <small> 2023-04-18 09:33:30 | Long</small>
 */
@Data
@SuppressWarnings("serial")
@TableName("jaz_user_demand")
//这是的这里继承的基础服务类，有几个基本字段
public class JazUserDemandDO implements Serializable {
	@TableId
	private Long id;


    /** 需求表id */
    @TableField(exist = false)
    @ApiModelProperty(value = "需求表id")
    private Long demandId;

    /** 发布人id */
    @TableField("sys_userid")
    @ApiModelProperty(value = "发布人id")
    private Long sysUserid;

    /** 需求标题 */
    @TableField("title")
    @ApiModelProperty(value = "需求标题")
    private String title;

    /**服务类型id（一对一）*/
    @TableField("project_id")
    @ApiModelProperty(value = "服务类型id（一对一）")
    private Long projectId;

    /** 性别(1男，2女，0未知） */
    @TableField("sex")
    @ApiModelProperty(value = "性别(1男，2女，0未知）")
    private String sex;

    /** 是否驻家（0.是 / 1.否） */
    @TableField("resident_home")
    @ApiModelProperty(value = "是否驻家（0.是 / 1.否）")
    private String residentHome;

    /** 省份 */
    @TableField("province")
    private String province;

    /** 市 */
    @TableField("city")
    private String city;

    /** （区/县） */
    @TableField("district")
    private String district;

    /** 工作详细地址/服务详细地址 */
    @TableField("address")
    @ApiModelProperty(value = " 工作地址/服务地址")
    private String address;

    /** 工作日期 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @TableField("work_date")
    @ApiModelProperty(value = " 工作日期")
    private Date workDate;

    /** 工作结束日期 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @TableField("end_date")
    @ApiModelProperty(value = " 工作结束日期")
    private Date endDate;

    /** 工作内容 */
    @TableField("work_content")
    @ApiModelProperty(value = " 工作内容")
    private String workContent;

    /** 工作要求 */
    @TableField("work_require")
    @ApiModelProperty(value = " 工作要求")
    private String workRequire;

    /** 每月休息天数 */
    @TableField("rest_day")
    @ApiModelProperty(value = " 每月休息天数")
    private Integer restDay;

    /** 薪资待遇 */
    @TableField("salary")
    @ApiModelProperty(value = " 薪资待遇")
    private String salary;

    /** 审核状态（0.待审核  / 1.已审核 / 2.已取消） */
    @TableField("audit_status")
    @ApiModelProperty(value = " 审核状态（0.待审核  / 1.已审核 / 2.已取消）")
    private Integer auditStatus;

    /** 审核结果（0.通过  / 1.拒绝） */
    @TableField("audit_result")
    @ApiModelProperty(value = " 审核结果（0.通过  / 1.拒绝  2 待审核）")
    private Integer auditResult;

    /** 拒绝理由 */
    @TableField(value = "refuse_reason",strategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = " 拒绝理由")
    private String refuseReason;

    /** 创建时间 */
    @TableField("create_time")
    @ApiModelProperty(value = " 创建时间")
    private Date createTime;

    /** 更新时间 */
    @TableField("update_time")
    @ApiModelProperty(value = " 更新时间")
    private Date updateTime;

    /** 展示状态（0.展示  / 1.不展示） */
    @TableField("show_status")
    @ApiModelProperty(value = " 展示状态（0.展示  / 1.不展示）")
    private Integer showStatus;

    /**
     * 接单手机号
     */
    @TableField("order_phone")
    @ApiModelProperty(value = "接单手机号")
    private String orderPhone;


    /**
     * 用户姓名
     */
    @TableField("user_name")
    @ApiModelProperty(value = "用户姓名")
    private String userName;

    /**
     * 项目类型名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "项目类型名称")
    private String projectName;


    /** 年龄限制  1.< 35 2.36 - 40  3.41 - 45  4.> 50*/
    @TableField("age")
    @ApiModelProperty(value = "年龄限制  1.< 35 2.36 - 40  3.41 - 45  4.> ")
    private String age;

    @TableField(exist = false)
    @ApiModelProperty(value = "发布人联系方式")
    private String mobile;


    @TableField("is_show")
    @ApiModelProperty(value = "用户是否查看（0未查看 1.已经查看）")
    private Integer isShow;



    @TableField("is_sign")
    @ApiModelProperty(value = "该需求是否签约（0未签约，1已签约）")
    private Integer isSign;

    @TableField("level")
    @ApiModelProperty(value = "优先级")
    private Integer level;

    @TableField("remark")
    @ApiModelProperty(value = "备注")
    private String remark;


    @TableField("project_type_id")
    @ApiModelProperty(value = "项目子项")
    private String projectTypeId;

    /** 后台需求-状态（1未接单 2已接单） */
    @TableField("status")
    private Integer status;

    /** 服务人id */
    @TableField("service_user_id")
    private Long serviceUserId;

    /** 服务人姓名 */
    @TableField(exist = false)
    private String serviceUserName;

    /** 接单人id(多个用，分隔) */
    @TableField("receiver_order_id")
    private String receiverOrderId;

    /** 阿姨信息 */
    @TableField(exist = false)
    private List<UserVO> userVOList;

    /** 需求来源( 1 用户发布需求  2 后台发布需求) */
    @TableField("demand_source")
    private Integer demandSource;


    @TableField(exist = false)
    private List<String> projectTypeName;


    @TableField(exist = false)
    private Integer multipleChoice;

    @ApiModelProperty(value = "身份证地址")
    @TableField(exist = false)
    private String idCardAddress;

    @ApiModelProperty(value = "用户姓名")
    @TableField(exist = false)
    private String name;

    /**
     * 洽谈状态1洽谈中
     */
    @TableField(exist = false)
    private int interviewStatus;

}
